package cn.suchan.jianzhi.q7_fibonacci;

/**
 * 知识点：斐波那契数列
 * 题目描述
 * 大家都知道斐波那契数列，现在要求输入一个整数n，请你输出斐波那契数列的第n项（从0开始，第0项为0）。
 * n<=39
 *
 * @author suchan
 * @date 2019/05/23
 */
public class Solution {
    /**
     * 斐波那契数列：F(0)=0，F(1)=1, F(n)=F(n-1)+F(n-2)（n>=2，n∈N*）
     *
     * @param n
     * @return
     */
    public int Fibonacci(int n) {
        // F(0)=0，F(1)=1
        if (n == 0 || n == 1) {
            return n;
        }
        // F(n)=F(n-1)+F(n-2)（n>=2，n∈N*）
        int[] fibonacciArray = new int[40];
        fibonacciArray[0] = 0;
        fibonacciArray[1] = 1;
        for (int i = 2; i <= n; i++) {
            fibonacciArray[i] = fibonacciArray[i - 1] + fibonacciArray[i - 2];
        }
        return fibonacciArray[n];
    }

    public static void main(String[] args) {
        Solution solution = new Solution();
        int fibonacci = solution.Fibonacci(39);
        System.out.println("fibonacci==>" + fibonacci);
    }
}
